/*
 * @Description:
 * @Version: 1.0
 * @Autor: ziwei
 * @Date: 2021-04-15 09:16:32
 * @LastEditors: ziwei
 * @LastEditTime: 2021-04-15 17:02:19
 */
// 异步的方法  
// fs.mkdirSync fs.mkdir 目录创建是要一层一层的创建
// fs.stat 可以用于描述文件的状态，如果不存在文件，就发生错误
// fs.existsSync 只有同步的异步被废弃了

const fs = require('fs').promises;
const {existsSync} = require('fs');

/* 
//async await创建目录
async function mkdir(pathStr) {
  let pathList = pathStr.split("/");
  for(let i=1;i<=pathList.length;i++){
    let currentPath = pathList.slice(0,i).join('/');
    if(existsSync(currentPath)){//判断文件状态
      await fs.mkdir(currentPath)
    }
  }
}

mkdir('a/b/c/d').then(()=>{
  console.log("创建成功");
}).catch(err =>{
  console.log(err);
}) */


//递归创建目录
/* function mkdir(pathStr, cb) {
  let arr = pathStr.split('/');
  let index = 1;
  function make(err) {
    if (index === arr.length + 1) return cb();
    let currentPath = arr.slice(0, index++).join('/');
    fs.stat(currentPath, (err) => {
      console.log(index);
      if (err) {
        //文件不存在
        fs.mkdir(currentPath, make);
      } else {
        make(err);
      }
    });
  }
  make();
} */

//a a/b a/b/c a/b/c/d
/* fs.mkdir('a/b/c/d',function(err) {
  if(err) return console.log(err);
  console.log("创建成功");
}) */

//串行
// function rmdir(dir,cb) {
//     fs.stat(dir,function (err,statObj) {
//         if(statObj.isDirectory){
//             fs.readdir(dir,function (err,dirs) {
//                  console.log(dirs);
//             })
//         }else{
//             //如果是文件直接删除即可
//             fs.unlink(dir,cb)
//         }
//     })
// }

// //并发
// function rmdir(dir, cb) {
//     fs.stat(dir, function (err, statObj) {
//         if (statObj.isDirectory) {
//             fs.readdir(dir, function (err, dirs) {
//                 dirs = dirs.map(item=>path.join(dir,item))
//                 if(!dirs.length){

//                 }
//                 let i = 0;
//                 function done() {

//                 }
//                 for(){

//                 }
//             })
//         } else {
//             //如果是文件直接删除即可
//             fs.unlink(dir, cb)
//         }
//     })
// }

// rmdir('a',function() {
//     console.log('删除文件');
// });

// //串行广度遍历
// async function rmdir() {
//    if(){
//        while(stack){

//        }
//    } else{

//    }
// }
// rmdir().then(()=>{
//     console.log("删除成功");
// })
